# # xiux.py (修正版)

# # 1. 从您的主应用和模型文件中导入必要的对象
# from app import app
# from models import db, Supervisor, Application

# # 要清理的用户名
# target_username = 'tt2'

# print(f"--- 开始为用户 '{target_username}' 执行数据清理脚本 ---")

# # 2. 手动创建应用上下文
# with app.app_context():
    
#     print("已进入应用上下文，准备查询数据库...")
    
#     # --- 将所有数据库操作放在这个 'with' 代码块内部 ---

#     # 3. 查找并删除 Supervisor 表中的记录
#     supervisor_to_delete = Supervisor.query.filter_by(username=target_username).first()
    
#     if supervisor_to_delete:
#         print(f"在 Supervisor 表中找到用户 '{target_username}'，正在删除...")
#         db.session.delete(supervisor_to_delete)
#         db.session.commit()
#         print("Supervisor 记录删除成功。")
#     else:
#         print(f"在 Supervisor 表中未找到用户 '{target_username}'。")

#     # 4. 查找并删除 Application 表中的记录
#     app_to_delete = Application.query.filter_by(username=target_username).first()
    
#     if app_to_delete:
#         print(f"在 Application 表中找到用户 '{target_username}' 的申请，正在删除...")
#         db.session.delete(app_to_delete)
#         db.session.commit()
#         print("Application 记录删除成功。")
#     else:
#         print(f"在 Application 表中未找到用户 '{target_username}' 的申请。")


# print("--- 脚本执行完毕 ---")

# update_supervisor_name.py - 用于修正导师申请记录中的姓名

# 1. 从您的主应用和模型文件中导入必要的对象
from app import app
from models import db, Application, UserType

# --- 在这里定义要修改的信息 ---
OLD_NAME = "Xiaoyan Sun"
NEW_NAME = "孙晓艳"
# --------------------------------

print("--- 开始执行导师姓名修改脚本 ---")
print(f"目标: 将姓名为 '{OLD_NAME}' 的导师申请修改为 '{NEW_NAME}'")

# 2. 手动创建应用上下文，以便访问数据库
with app.app_context():
    try:
        print("已进入应用上下文，准备查询数据库...")
        
        # 3. 精确查找类型为“导师”且姓名为 OLD_NAME 的申请记录
        #    我们只修改待审核的记录，防止误改已处理的数据
        application_to_update = Application.query.filter_by(
            name=OLD_NAME,
            user_type=UserType.SUPERVISOR
        ).first()

        # 4. 检查是否找到并执行修改
        if application_to_update:
            print(f"成功找到申请记录: ID={application_to_update.id}, 用户名={application_to_update.username}, 旧姓名={application_to_update.name}")
            
            # 修改姓名
            application_to_update.name = NEW_NAME
            
            # 导师申请中，supervisor_name 字段通常也存自己的名字，为保持数据一致性，需要一并修改
            if application_to_update.supervisor_name == OLD_NAME:
                application_to_update.supervisor_name = NEW_NAME
                print(f"同时更新 supervisor_name 字段为 '{NEW_NAME}'。")

            # 提交更改到数据库
            db.session.commit()
            
            print(f"\n✅ 操作成功：申请记录 ID={application_to_update.id} 的姓名已更新为 '{NEW_NAME}'。")
            
        else:
            print(f"\n❌ 未找到姓名为 '{OLD_NAME}' 的导师申请记录，无需操作。")

    except Exception as e:
        print(f"\n❌ 操作失败: {e}")
        db.session.rollback()

print("--- 脚本执行完毕 ---")